Using HotSwap for Implementing Dynamic AOP Systems

نویسندگان

  • Shigeru Chiba
  • Yoshiki Sato
  • Michiaki Tatsubori
چکیده

Practical demands on dynamic aspect-oriented programming (AOP) are getting well recognized. For example, logging functionality is a typical application of AOP but the usefulness of this functionality is limited without dynamic AOP. When we are debugging a program, we tend to want dynamically adding or removing various logging aspects without restarting the program. Suppose that the program is a Web application server and there is a bug that appears only after long product run. If the program is restarted for logging, all the internal data structures are reset and hence the context causing the bug would be lost. Another crosscutting concern that should be dynamically woven is security fixes. Suppose that your organization is running a web application server for selling your products. Since such a web server cannot stop except scheduled maintenance time, if it turns out that the server has a security problem, a patch fixing the problem should be applied to the server without shutting it down. If a better patch is released later, the previous patch should be removed and instead the new one should be applied. The patch will be used until the server is rebooted after the bug is fixed in a clean way at scheduled maintenance time. Developing an implementation technique for dynamic AOP systems is still a research topic especially in Java. Since one of the most important features of Java is platform independence, dynamic AOP systems are required to be built on top of the standard Java virtual machine (JVM). A modified JVM for dynamic AOP is not acceptable in practice. This paper presents our Java-based dynamic AOP system called Wool. For better performance than other systems, Wool is implemented with our novel technique exploiting the HotSwap mechanism recently introduced by the Java2 SDK 1.4. This mechanism allows us to dynamically reload a class file to update the class definition. However, naively using this mechanism does not improve execution performance. This paper mentions how this mechanism should be used with others to really improve performance.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Debugging Aspect-Enabled Programs

The ability to debug programs composed using aspect-oriented programming (AOP) techniques is critical to the adoption of AOP. Nevertheless, many AOP systems lack adequate support for debugging, making it difficult to diagnose faults and understand the program‘s composition and control flow. We present an AOP debug model that characterizes AOP-specific program composition techniques and AOP-spec...

متن کامل

Using aspect orientation in legacy environments for reverse engineering using dynamic analysis - An industrial experience report

This paper reports on the challenges of using aspect oriented programming (AOP) to aid in re-engineering a legacy C application. More specifically, we describe how AOP helps in the important reverse engineering step which typically precedes a reengineering effort. We first present a comparison of available AOP tools for legacy C code bases and then argument our choice of Aspicere, our own AOP i...

متن کامل

1 First Workshop on Advancing the State of the Art in Run - Time Inspection Organizers :

ion to yet another meta-level by viewing the meta-objects as units of separated concerns and by providing an additional meta layer for monitoring and manipulating these units. This work is related to the position papers on dynamic AOP discussed in the next section. The proposal of behavioral reflection as a foundation of runtime inspection was picked up in the discussion group on a model for ru...

متن کامل

Using Dynamic Aspect-Oriented Programming to Implement an Autonomic System

As computational complexity of systems continues to increase, the amount of maintenance required to keep them operational will also increase. Autonomic systems have the aim of reducing the amount of maintenance required by performing certain levels of maintenance themselves. This paper outlines the case of using dynamic AOP to implement such a system. The benefits and issues arising from using ...

متن کامل

Program Slicing Tool for Effective Software Evolution Using Aspect-Oriented Technique

One of the issues in software evolution is debugging. Debugging large and complex software systems evolved requires a lot of effort since it is very difficult to localize and identify faults. Therefore, reducing the effort of debugging process is an important step towards efficient software evolution. Program slicing, especially dynamic slicing, has been proposed to efficiently localize faults ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2003